﻿
namespace GSSoftSL.Web.Models
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies BienLaiMetadata as the class
    // that carries additional metadata for the BienLai class.
    [MetadataTypeAttribute(typeof(BienLai.BienLaiMetadata))]
    public partial class BienLai
    {

        // This class allows you to attach custom attributes to properties
        // of the BienLai class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BienLaiMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BienLaiMetadata()
            {
            }

            public EntityCollection<BienLaiCT> BienLaiCTs { get; set; }

            public Guid BienLaiId { get; set; }

            public string GhiChu { get; set; }

            public HocVien HocVien { get; set; }

            public int KhoaHoc { get; set; }

            public string MaHV { get; set; }

            public DateTime NgayDong { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiThu { get; set; }

            public string SoBienLai { get; set; }

            public decimal TongTienSauGiam { get; set; }

            public decimal TongTienThanhToan { get; set; }

            public decimal TongTienTruocGiam { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BienLaiCTMetadata as the class
    // that carries additional metadata for the BienLaiCT class.
    [MetadataTypeAttribute(typeof(BienLaiCT.BienLaiCTMetadata))]
    public partial class BienLaiCT
    {

        // This class allows you to attach custom attributes to properties
        // of the BienLaiCT class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BienLaiCTMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BienLaiCTMetadata()
            {
            }

            public BienLai BienLai { get; set; }

            public Guid BienLaiId { get; set; }

            public decimal HocPhiSauGiam { get; set; }

            public decimal HocPhiTruocGiam { get; set; }

            public KhoaHoc KhoaHoc { get; set; }

            public Guid KhoaHocId { get; set; }

            public decimal MucGiam { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DiemDanhMetadata as the class
    // that carries additional metadata for the DiemDanh class.
    [MetadataTypeAttribute(typeof(DiemDanh.DiemDanhMetadata))]
    public partial class DiemDanh
    {

        // This class allows you to attach custom attributes to properties
        // of the DiemDanh class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DiemDanhMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DiemDanhMetadata()
            {
            }

            public int BuoiHoc { get; set; }

            public bool CoGiaoVien { get; set; }

            public EntityCollection<DiemDanhCT> DiemDanhCTs { get; set; }

            public Guid DiemDanhId { get; set; }

            public KhoaHoc KhoaHoc { get; set; }

            public Guid KhoaHocId { get; set; }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public DateTime NgayCapNhat { get; set; }

            public DateTime NgayDiemDanh { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiCapNhat { get; set; }

            public Guid NguoiTao { get; set; }

            public int SoLuongHV { get; set; }

            public int SoLuongVang { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DiemDanhCTMetadata as the class
    // that carries additional metadata for the DiemDanhCT class.
    [MetadataTypeAttribute(typeof(DiemDanhCT.DiemDanhCTMetadata))]
    public partial class DiemDanhCT
    {

        // This class allows you to attach custom attributes to properties
        // of the DiemDanhCT class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DiemDanhCTMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DiemDanhCTMetadata()
            {
            }

            public bool CoPhep { get; set; }

            public DiemDanh DiemDanh { get; set; }

            public Guid DiemDanhId { get; set; }

            public HocVien HocVien { get; set; }

            public string LyDo { get; set; }

            public string MaHV { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies GiaoVienMetadata as the class
    // that carries additional metadata for the GiaoVien class.
    [MetadataTypeAttribute(typeof(GiaoVien.GiaoVienMetadata))]
    public partial class GiaoVien
    {

        // This class allows you to attach custom attributes to properties
        // of the GiaoVien class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class GiaoVienMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private GiaoVienMetadata()
            {
            }

            public string DiaChi { get; set; }

            public string DienThoai { get; set; }

            public string Email { get; set; }

            public string GhiChu { get; set; }

            public Guid GiaoVienID { get; set; }

            public EntityCollection<GiaoVienMon> GiaoVienMons { get; set; }

            public int GioiTinh { get; set; }

            public EntityCollection<Lop> Lops { get; set; }

            public string MaGV { get; set; }

            public Nullable<DateTime> NgayCapNhat { get; set; }

            public Nullable<DateTime> NgaySinh { get; set; }

            public Nullable<DateTime> NgayTao { get; set; }

            public Nullable<Guid> NguoiCapNhat { get; set; }

            public Nullable<Guid> NguoiTao { get; set; }

            public string TenGV { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies GiaoVienMonMetadata as the class
    // that carries additional metadata for the GiaoVienMon class.
    [MetadataTypeAttribute(typeof(GiaoVienMon.GiaoVienMonMetadata))]
    public partial class GiaoVienMon
    {

        // This class allows you to attach custom attributes to properties
        // of the GiaoVienMon class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class GiaoVienMonMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private GiaoVienMonMetadata()
            {
            }

            public GiaoVien GiaoVien { get; set; }

            public Guid GiaoVienId { get; set; }

            public string MaMon { get; set; }

            public Mon Mon { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies HocVienMetadata as the class
    // that carries additional metadata for the HocVien class.
    [MetadataTypeAttribute(typeof(HocVien.HocVienMetadata))]
    public partial class HocVien
    {

        // This class allows you to attach custom attributes to properties
        // of the HocVien class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class HocVienMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private HocVienMetadata()
            {
            }

            public EntityCollection<BienLai> BienLais { get; set; }

            public string DiaChiNha { get; set; }

            public EntityCollection<DiemDanhCT> DiemDanhCTs { get; set; }

            public string DTCaNhan { get; set; }

            public string DTCha { get; set; }

            public string DTMe { get; set; }

            public string DTNguoiBaoTro { get; set; }

            public string DTNha { get; set; }

            public string Email { get; set; }

            public string GhiChu { get; set; }

            public int GioiTinh { get; set; }

            public string HoLot { get; set; }

            public string HoTenCha { get; set; }

            public string HoTenMe { get; set; }

            public string HoTenNguoiBaoTro { get; set; }

            public EntityCollection<KhoaHoc> KhoaHocs { get; set; }

            public Nullable<int> KhoiLop { get; set; }

            public EntityCollection<LopDiem> LopDiems { get; set; }

            public EntityCollection<LopHocVien> LopHocViens { get; set; }

            public string MaHV { get; set; }

            public string MaTruong { get; set; }

            public DateTime NgayCapNhat { get; set; }

            public Nullable<DateTime> NgaySinh { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiCapNhat { get; set; }

            public Guid NguoiTao { get; set; }

            public long STT { get; set; }

            public string Ten { get; set; }

            public Truong Truong { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies KhoaHocMetadata as the class
    // that carries additional metadata for the KhoaHoc class.
    [MetadataTypeAttribute(typeof(KhoaHoc.KhoaHocMetadata))]
    public partial class KhoaHoc
    {

        // This class allows you to attach custom attributes to properties
        // of the KhoaHoc class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class KhoaHocMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private KhoaHocMetadata()
            {
            }

            public DateTime BatDau { get; set; }

            public EntityCollection<BienLaiCT> BienLaiCTs { get; set; }

            public EntityCollection<DiemDanh> DiemDanhs { get; set; }

            public EntityCollection<HocVien> HocViens { get; set; }

            public DateTime KetThuc { get; set; }

            public Guid KhoaHocId { get; set; }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public string MaKhoaHoc { get; set; }

            public DateTime NgayCapNhat { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiCapNhat { get; set; }

            public Guid NguoiTao { get; set; }

            public int STT { get; set; }

            public string TenKhoaHoc { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LopMetadata as the class
    // that carries additional metadata for the Lop class.
    [MetadataTypeAttribute(typeof(Lop.LopMetadata))]
    public partial class Lop
    {

        // This class allows you to attach custom attributes to properties
        // of the Lop class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LopMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LopMetadata()
            {
            }

            public EntityCollection<DiemDanh> DiemDanhs { get; set; }

            public GiaoVien GiaoVien { get; set; }

            public Guid GiaoVienId { get; set; }

            public decimal HocPhiDeNghi { get; set; }

            public EntityCollection<KhoaHoc> KhoaHocs { get; set; }

            public EntityCollection<LopCotDiem> LopCotDiems { get; set; }

            public EntityCollection<LopChiTiet> LopChiTiets { get; set; }

            public EntityCollection<LopDiem> LopDiems { get; set; }

            public EntityCollection<LopHocVien> LopHocViens { get; set; }

            public Guid LopId { get; set; }

            public string MaLop { get; set; }

            public string MaMon { get; set; }

            public Mon Mon { get; set; }

            public Nullable<DateTime> NgayCapNhat { get; set; }

            public Nullable<DateTime> NgayTao { get; set; }

            public Nullable<Guid> NguoiCapNhat { get; set; }

            public Nullable<Guid> NguoiTao { get; set; }

            public string TenLop { get; set; }

            public int TrangThai { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LopCotDiemMetadata as the class
    // that carries additional metadata for the LopCotDiem class.
    [MetadataTypeAttribute(typeof(LopCotDiem.LopCotDiemMetadata))]
    public partial class LopCotDiem
    {

        // This class allows you to attach custom attributes to properties
        // of the LopCotDiem class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LopCotDiemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LopCotDiemMetadata()
            {
            }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiTao { get; set; }

            public int STT { get; set; }

            public string Ten { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LopChiTietMetadata as the class
    // that carries additional metadata for the LopChiTiet class.
    [MetadataTypeAttribute(typeof(LopChiTiet.LopChiTietMetadata))]
    public partial class LopChiTiet
    {

        // This class allows you to attach custom attributes to properties
        // of the LopChiTiet class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LopChiTietMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LopChiTietMetadata()
            {
            }

            public DateTime BatDau { get; set; }

            public int BuoiHoc { get; set; }

            public DateTime KetThuc { get; set; }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public string MaPhong { get; set; }

            public int NgayTrongTuan { get; set; }

            public Phong Phong { get; set; }

            public long STT { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LopDiemMetadata as the class
    // that carries additional metadata for the LopDiem class.
    [MetadataTypeAttribute(typeof(LopDiem.LopDiemMetadata))]
    public partial class LopDiem
    {

        // This class allows you to attach custom attributes to properties
        // of the LopDiem class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LopDiemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LopDiemMetadata()
            {
            }

            public int Cot { get; set; }

            public decimal Diem { get; set; }

            public HocVien HocVien { get; set; }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public string MaHV { get; set; }

            public DateTime NgayTao { get; set; }

            public Guid NguoiTao { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LopHocVienMetadata as the class
    // that carries additional metadata for the LopHocVien class.
    [MetadataTypeAttribute(typeof(LopHocVien.LopHocVienMetadata))]
    public partial class LopHocVien
    {

        // This class allows you to attach custom attributes to properties
        // of the LopHocVien class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LopHocVienMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LopHocVienMetadata()
            {
            }

            public bool ConTheoHoc { get; set; }

            public HocVien HocVien { get; set; }

            public Lop Lop { get; set; }

            public Guid LopId { get; set; }

            public string MaHV { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies MonMetadata as the class
    // that carries additional metadata for the Mon class.
    [MetadataTypeAttribute(typeof(Mon.MonMetadata))]
    public partial class Mon
    {

        // This class allows you to attach custom attributes to properties
        // of the Mon class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class MonMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MonMetadata()
            {
            }

            public EntityCollection<GiaoVienMon> GiaoVienMons { get; set; }

            public EntityCollection<Lop> Lops { get; set; }

            public string MaMon { get; set; }

            public Nullable<DateTime> NgayCapNhat { get; set; }

            public Nullable<DateTime> NgayTao { get; set; }

            public Nullable<Guid> NguoiCapNhat { get; set; }

            public Nullable<Guid> NguoiTao { get; set; }

            public string TenMon { get; set; }

            public int ThuTu { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PhongMetadata as the class
    // that carries additional metadata for the Phong class.
    [MetadataTypeAttribute(typeof(Phong.PhongMetadata))]
    public partial class Phong
    {

        // This class allows you to attach custom attributes to properties
        // of the Phong class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PhongMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PhongMetadata()
            {
            }

            public EntityCollection<LopChiTiet> LopChiTiets { get; set; }

            public string MaPhong { get; set; }

            public Nullable<DateTime> NgayCapNhat { get; set; }

            public Nullable<DateTime> NgayTao { get; set; }

            public Nullable<Guid> NguoiCapNhat { get; set; }

            public Nullable<Guid> NguoiTao { get; set; }

            public Nullable<int> Tang { get; set; }

            public string TenPhong { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TruongMetadata as the class
    // that carries additional metadata for the Truong class.
    [MetadataTypeAttribute(typeof(Truong.TruongMetadata))]
    public partial class Truong
    {

        // This class allows you to attach custom attributes to properties
        // of the Truong class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TruongMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TruongMetadata()
            {
            }

            public string GhiChu { get; set; }

            public EntityCollection<HocVien> HocViens { get; set; }

            public string MaTruong { get; set; }

            public DateTime NgayCapNhat { get; set; }

            public DateTime NgayTao { get; set; }

            public Nullable<Guid> NguoiCapNhat { get; set; }

            public Nullable<Guid> NguoiTao { get; set; }

            public string TenTruong { get; set; }
        }
    }
}
